package com.xiaoye.qbproject.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoye.qbproject.domain.ZbInfo;
import com.xiaoye.qbproject.vo.ZbAttrImportVo;
import com.xiaoye.qbproject.vo.ZbImportV2Vo;
import com.xiaoye.qbproject.vo.ZbImportVo;
import com.xiaoye.qbproject.vo.ZbInfoVo;
import com.xiaoye.qbproject.vo.dropDown.ZbInfoDropDownVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author Administrator
 * @description 针对表【ZB_INFO(装备信息)】的数据库操作Service
 * @createDate 2024-12-27 02:57:47
 */
public interface ZbInfoService extends IService<ZbInfo> {

    /**
     * @param result
     * @param countryName
     * @description: 批量导入装备信息，包括装备类型和模块信息
     * @author: ChenYao
     * @return: void
     * @ceateDate: 2024-12-27 14:37
     */

    void saveZbAndTypeAndModules(List<ZbImportVo> result, String countryName);

    /**
     * @param zbAttrImportVos
     * @description: 装备数据导入
     * @author: ChenYao
     * @return: void
     * @ceateDate: 2024-12-31 14:14
     */

    void importZbAttrInfo(List<ZbAttrImportVo> zbAttrImportVos);

    /**
     * @description: 下拉列表查询装备信息
     * @author: ChenYao
     * @return: java.util.List<com.xiaoye.qbproject.vo.dropDown.ZbInfoDropDownVO>
     * @ceateDate: 2025-01-02 14:09
     */

    List<ZbInfoDropDownVO> dropDown();

    /**
     * @description: 查询装备下拉列表信息(排除和专题已关联的)
     * @author: ChenYao
     * @return: java.util.List<com.xiaoye.qbproject.vo.dropDown.ZbInfoDropDownVO>
     * @ceateDate: 2025/2/11 下午3:39
     */
    List<ZbInfoDropDownVO> excludeRelateToDropDown(String subjectId);

    void delCache();


    /**
     * @param ids
     * @param response
     * @description: 导出owl 标准文件
     * @author: ChenYao
     * @return: void
     * @ceateDate: 2025-01-03 13:39
     */

    void exportOwl(String[] ids, HttpServletResponse response);

    /**
     * @param zbInfoVo
     * @description: 根据条件查询装备信息列表
     * @author: ChenYao
     * @return: java.util.List<com.xiaoye.qbproject.domain.ZbInfo>
     * @ceateDate: 2025-01-10 13:03
     */

    List<ZbInfo> getZbInfoList(ZbInfoVo zbInfoVo);

    /**
     * @param id
     * @description: 获取装备详情
     * @author: ChenYao
     * @return: com.xiaoye.qbproject.domain.ZbInfo
     * @ceateDate: 2025-01-10 13:42
     */

    ZbInfo getZbInfo(String id);

    /**
     * @param zbImportVos
     * @param countryName
     * @description: 批量导入装备信息V2版本
     * @author: ChenYao
     * @return: void
     * @ceateDate: 2025-01-13 19:03
     */

    void saveZbInfoV2(List<ZbImportV2Vo> zbImportVos, String countryName);
}
